// ==UserScript==
// @name         Micoua_FC
// @version      1.0.0
// @author       micoua
// @create       2021-01-18 16:18:19
// @update       2021-01-18 16:18:25
// @namespace    https://greasyfork.org/zh-CN/users/162781
// @description  拂尘-调整网页样式

// @include      *

//               ↓ jQuery核心文件 ↓
// @require      https://greasyfork.org/scripts/39025-micoua-jquery-min-js/code/Micoua_jQuery_min_js.js?version=255336
//               ↓ jQueryUI核心文件 ↓
// @require      https://greasyfork.org/scripts/40306-micoua-jqueryui-min-js/code/Micoua_jQueryUI_min_js.js?version=267377

// @grant        unsafeWindow
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_listValues
// ==/UserScript==

(function() {
    /** 是否最外 */
    if (self != top) { return; }

    /** 初始化JQ语法 */
    var $ = $ || window.$;

    /** 定义变量 */
    var curWebURL = window.location.href;

    /** 基础入口 */
    function main() {
        // 添加控制元素
        addControlEle();
        // 配置样式
        setStyles();
        // 监听事件
        //listenEvents();
        // 页面元素处理
        var selector = new CssSelector({
            parent: document,
            enableResultStripping: true,
            ignoredTags: ['font'],
            enableSmartTableSelector: true,
            allowMultipleSelectors: false,
            query: jQuery,
            ignoredClasses: [
                'my-class'
            ]
        });
        var elements = document.getElementsByClassName('my-class');
        var result_selector = selector.getCssSelector(elements);

    }

    /** 添加控制元素 */
    function addControlEle() {
        $("html").append(`<div class="micoua" id="control-div"></div>`);
        $("div.micoua#control-div").append(`<div class="micoua" id="switch-btn" data-state="off">开/关</div>`);
        $("div.micoua#control-div").append(`<div class="micoua" id="preview-btn">预览</div>`);
        $("div.micoua#control-div").append(`<div class="micoua" id="confirm-btn">确定</div>`);

    }

    /** 配置样式 */
    function setStyles() {
        let styles = `<style>`;
        // 控制区
        styles += `div.micoua#control-div {
            position: fixed;
            z-index: 999999;
            height: 30px;
            width: 200px;
            right: 10px;
            bottom: 100px;
            border: 1px solid red;
            border-radius: 8px;
        }`;
        // 控制区内按钮
        styles += `div.micoua#control-div div {
            position: relative;
            float: left;
            height: 20px;
            width: 30px;
            border: 1px solid blue;
            border-radius: 5px;
            margin: 5px 0 0 5px;
            line-height: 21px;
            text-align: center;
            cursor: pointer;
            font-size: x-small;
        }
        div.micoua#control-div div:hover {
            background: gray;
        }`;
        // 悬停元素
        styles += `.remove-hover {
            background: red;
            opacity: .5;
            cursor: pointer;
        }`;

        styles += `</style>`;
        // 添加样式
        $("head").append(styles);
    }

    /** 监听事件 */
    function listenEvents() {
        let $switchBtn = $("div.micoua#control-div div#switch-btn")
        // 点击开关
        $switchBtn.click(function() {
            this.dataset.state = this.dataset.state === "on" ? "off" : "on";
        });
        // 鼠标悬停
        $("body *").on({
            mouseenter: function(e) {
                if ($switchBtn[0].dataset.state === "on") {
                    $(this).addClass("remove-hover");
                    e.stopPropagation();
                }
            },
            mouseleave: function() {
                $(this).removeClass("remove-hover");
            }
        });
    }

    // 获取当前时间
    function getCurTime() {
        function getNow(s) { return s < 10 ? '0' + s : s; }
        const myDate = new Date();
        const year = myDate.getFullYear(); //获取当前年
        const month = myDate.getMonth() + 1; //获取当前月
        const date = myDate.getDate(); //获取当前日
        const h = myDate.getHours(); //获取当前小时数(0-23)
        const m = myDate.getMinutes(); //获取当前分钟数(0-59)
        const s = myDate.getSeconds(); //获取当前秒数数(0-59)
        return year + '-' + getNow(month) + "-" + getNow(date) + " " + getNow(h) + ':' + getNow(m) + ":" + getNow(s);
    }

    // 等待
    function sleep(waitSeconds) {
        waitSeconds *= 1000
        setTimeout(function() {}, waitSeconds);
    }

    /** 添加外部js文件 */
    function addScript(url) {
        document.write("<script language=javascript src=" + url + "></script>");
    }

    /** 加载完所有数据后进入主函数 */
    if (true) main();
})();